AWS Systems Manager パブリックパラメータリストが提供され、パラメータを見つけやすくなりました!
AWS Systems Manager Parameter Store(以降 Parameter Store) の パブリックパラメータ ですが、今回 パブリックパラメータ リスト取得が出来るようになりました!
AWS Systems Manager Parameter Store now supports easier public parameter discoverability
パブリックパラメータ は以前から提供されていましたが、どんな パラメータ (どんなサービスでどんな種類) があるのかを正しく把握することが困難でした。今回、リスト機能により どんな パブリックパラメータ があるのかを把握することが用意になりました。
ドキュメントによると概要としては下記の通りです。 注意点としては、全てのリージョンで等しく提供されているわけではないようです。
All public parameters are not published to all AWS Regions.
提供パラメータ(2021/04/02 時点)
- ami-al-latest
- ami-amazon-linux-latest
- ami-windows-latest
- aws-storage-gateway-latest
- bottlerocket
- canonical
- datasync
- debian
- ec2windows
- ecs
- global-infrastructure
- redhat
- storagegateway
- suse
確認方法(2021/04/02 時点)
- マネジメントコンソール
- CLI
やってみる
マネジメントコンソール
Systems Manager >>> パラメータストア >>> パブリックパラメータ
以前は パブリックパラメータ タブがありませんでした。
サービスを選択
にリストされているものが パブリックパラメータ として提供されているリストとなります。確かにドキュメント記載のサービスリストとは異なる部分があります。
任意サービスを選択すると、今までと同じように パラメータ を確認することが出来ます。
詳細を選択すると パラメータ 概要が確認出来ます。
CLI
ssm describe-parameters
で /aws/service/list
を指定して取得します。
一覧を習得します。ほぼ一致します。
$ aws ssm describe-parameters --parameter-filters "Key=Name, Option=BeginsWith, Values=/aws/service/list" --region ap-northeast-1 --query Parameters[].Name |sort [ "/aws/service/list/ami-amazon-linux-latest", "/aws/service/list/ami-windows-latest", "/aws/service/list/appmesh", "/aws/service/list/aws-for-fluent-bit", "/aws/service/list/aws-storage-gateway-latest", "/aws/service/list/bottlerocket", "/aws/service/list/canonical", "/aws/service/list/cloud9", "/aws/service/list/datasync", "/aws/service/list/ecs", "/aws/service/list/eks", "/aws/service/list/global-infrastructure", "/aws/service/list/redhat", "/aws/service/list/storagegateway" "/aws/service/list/suse", ]
Name で限定せずにコマンドを実行すると Description
にサービス用コマンドが記載されています。
$ aws ssm describe-parameters --parameter-filters "Key=Name, Option=BeginsWith, Values=/aws/service/list" --profile blog { "Parameters": [ { "Name": "/aws/service/list/ami-windows-latest", "Type": "String", "LastModifiedDate": 1615504058.727, "Description": "This parameter represents /aws/service/ami-windows-latest that provides public parameters. You can see what parameters ami-windows-latest provides by running 'aws ssm get-parameters-by-path --recursive --path /aws/service/ami-windows-latest/'", "Version": 1, "Tier": "Standard", "Policies": [], "DataType": "text" },
コマンド実行する パラメータ 一覧が取得出来ます。
$ aws ssm get-parameters-by-path --recursive --path /aws/service/ami-windows-latest/ { "Parameters": [ { "Name": "/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Simplified-64Bit-Base", "Type": "String", "Value": "ami-0b833d707cf8a786e", "Version": 63, "LastModifiedDate": 1615514134.081, "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Simplified-64Bit-Base", "DataType": "text" }, { "Name": "/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Traditional-64Bit-Base", "Type": "String", "Value": "ami-09e6867ba14cc73f7", "Version": 63, "LastModifiedDate": 1615514155.164, "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Traditional-64Bit-Base", "DataType": "text" }, 以下、略 ...
先ほど、マネジメントコンソール と CLI の結果に差異があったのが気になったので CLI で パラメータ を取得してみます。 試しに redhut の パブリックパラメータ を取得してみます。
$ aws ssm get-parameters-by-path --recursive --path /aws/service/redhat/ --region ap-northeast-1 { "Parameters": [] }
パラメータを取得することは出来ませんでした。提供対象リージョンではないのかもしれませんが CLI の結果には表示されているので混同してしまいそうなので、適切なサービス一覧を確認するには マネジメントコンソールが手堅いかと思います。 (私のコマンドや誤認識の場合は、そっとご指摘ください)
さいごに
以前、パブリックパラメータ を利用してあれこれ試した時、他に良さそうなパラメータはないかなと試行錯誤した思い出があるので、こうして日々アップデートがされていくのは嬉しいですね!